Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
課題2
1回目の宿題のテストを作ってみて下さい
./output/
に分離してファイル出力を伴うテストをしやすくしましたMakefile
に追加しましたassert
系の独自関数にt.Helper()
を追加してヘルパー化しましたio.Readerとio.Writerについて調べてみよう
io.Reader
io.Writer
インターフェースを実装している標準パッケージ内の例として、os.File
構造体がある。また、これらを引数として取るメソッドの例としては、image
(およびその下位)パッケージでのDecode()
やEncode()
がある。os.File
、標準入出力os.Stdin
os.Stdout
等)において、io.Reader
io.Writer
のインターフェースを実装していれば、標準化されたデータの読み書きが可能になる。これにより入出力形式が抽象化され、例えば上記Decode()
やEncode()
といったデータ入出力を伴うメソッドを、個別の具体的な入出力形式に依存せず実装・利用できる利点が生まれる。io.Writer
にすることで、テスト時にはos.File
以外の出力形式をモックとして当てることができる。これによりテスタビリティが向上する。